#include "datablockinfo.h"
#include "ui_datablockinfo.h"

dataBlockInfo::dataBlockInfo(QWidget *parent)
    : QWidget(parent), ui(new Ui::dataBlockInfo)
{
    ui->setupUi(this);
    setAttribute(Qt::WA_StyledBackground); // 这句不加,样式表是加载不出来的
}

dataBlockInfo::~dataBlockInfo()
{
    delete ui;
}

void dataBlockInfo::setUiData(paramInfo data)
{
    // 处理数据显示，保留一位小数
    QString displayData = data.data;
    double numericValue;
    bool isNumeric = false;
    numericValue = data.data.toDouble(&isNumeric);

    // 如果是数字，则格式化为显示一位小数
    if (isNumeric)
    {
        displayData = QString::number(numericValue, 'f', 1);
    }

    ui->label_data->setText(displayData);
    ui->label_position->setText(data.position);

    // 根据不同类型设置图标路径
    QString icon_path;
    if (data.type == "温度")
    {
        icon_path = "./icon/t_blue.svg";
    }
    else if (data.type == "湿度")
    {
        icon_path = "./icon/h_blue.svg";
    }
    else if (data.type == "超声波")
    {
        icon_path = "./icon/icon_shark.svg";
    }
    else if (data.type == "暂态地电压")
    {
        icon_path = "./icon/icon_light.svg";
    }
    else
    {
        // 其他类型使用默认图标
        icon_path = ":/icons/default.svg";
    }

    QPixmap pix;
    if (QFile::exists(icon_path))
    {
        pix.load(icon_path);
        pix = pix.scaled(
            ui->label_icon->size(),  // 目标尺寸
            Qt::KeepAspectRatio,     // 保留宽高比
            Qt::SmoothTransformation // 平滑缩放
        );
    }
    ui->label_icon->setPixmap(pix);
}
